package com.example.csupermaket.mapper;

import com.example.csupermaket.pojo.entity.Product;
import com.example.csupermaket.pojo.vo.ProductListItemVO;
import com.example.csupermaket.pojo.vo.ProductStandardVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 处理商品数据的mapper接口
 *
 * @author jue
 * @version 0.0.1
 */

public interface ProductMapper {

    /**
     * 插入商品数据
     * @param product 商品数据
     * @return 受影响的行数
     */

    int insert(Product product);


    int remove(String url);

    /**
     * 通过id删除商品数据
     * @param id 要删除的商品的id
     * @return 受影响的行数
     */

    int deleteById(int id);

    /**
     * 通过id批量删除商品数据
     * @param idList 要删除的商品id的数组
     * @return 受影响的行数
     */

    int deleteByIds(int[] idList);

    /**
     * 根据id修改商品数据
     * @param product 修改的新数据集合
     * @return 受影响的行数
     */

    int update(Product product);

    /**
     * 商品数据数量
     * @return 商品数据数量
     */

    int count();

    /**
     *  通过商品名称统计判断商品数量
     * @param name 商品名称
     * @return  商品数量
     */
    int countByName(String name);

    int countByNameAndNotId(@Param("id") int id,@Param("pName")String pName);


    /**
     * 通过id查询商品信息
     * @param id 要查询的商品的id
     * @return 查询到的商品的数据集合
     */

    ProductStandardVO getStandardById(int id);


    String selectUrlById(int id);

    /**
     * 查看当前所有的商品信息
     * @return 当前所有的商品信息的集合
     */

    List<ProductListItemVO> list();

}
